xilinx IOBUF使用详解 您所在的位置:网站首页 vhdl buffer怎么用 xilinx IOBUF使用详解

xilinx IOBUF使用详解

2024-07-07 23:47| 来源: 网络整理| 查看: 265

在vivado中,连接的管脚的信号一般都会自动添加OBUF或IBUF。

但是对于inout类型的接口,不会主动添加IOBUF,因为in/out切换需要控制信号,需要用户自己分配好。

在Language Template中能找到IOBUF的标准实例:

// IOBUF: Single-ended Bi-directional Buffer //        All devices // Xilinx HDL Language Template, version 2017.2      IOBUF #(       .DRIVE(12), // Specify the output drive strength       .IBUF_LOW_PWR("TRUE"),  // Low Power - "TRUE", High Performance = "FALSE"       .IOSTANDARD("DEFAULT"), // Specify the I/O standard       .SLEW("SLOW") // Specify the output slew rate    ) IOBUF_inst (       .O(O),     // Buffer output       .IO(IO),   // Buffer inout port (connect directly to top-level port)       .I(I),     // Buffer input       .T(T)      // 3-state enable input, high=input, low=output    );

我们现在实例化一个叫IIC的双向口

IOBUF #( .DRIVE(12), // Specify the output drive strength .IBUF_LOW_PWR("TRUE"), // Low Power - "TRUE", High Performance = "FALSE" .IOSTANDARD("DEFAULT"), // Specify the I/O standard .SLEW("SLOW") // Specify the output slew rate ) IOBUF_inst ( .O(sda_i), // Buffer output(user input) .IO(iic_sda), // Buffer inout port (connect directly to top-level port) .I(sda_o), // Buffer input(user output) .T(sda_o) // 3-state enable input, high=input, low=output ); 注:sda_o拉高就是设置为输入,总线空闲的意思 特别注意:

(1)原语中的O/I都是针对这个BUF来说的,不是针对管脚,务必注意。

   我们把 .IO() 端口当成pad管脚一侧,则:

(2)需要输出到io的内部信号填入到 .I(),通过OBUF缓冲输出到.IO()管脚,也就是输出的信号用户需要先输入到IOBUF,IOBUF 帮我们输出的FPGA PAD管脚;

(3)从.IO()管脚输入进来的信号经过IBUF缓冲到 .O()内部信号,也就是输入的信号IOBUF 会为我们处理好输出来给用户使用。

(4)输入信号想要正确,那么这个时候的OBUF必须是高阻z,也就是 .T()要有效,  .T() 填管脚input的使能条件,即让输出无效,这里是read。

1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除。

2.未经原作者允许不得转载本文内容,否则将视为侵权;

3.转载或者引用本文内容请注明来源及原作者;

4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有